package com.ssii.www.myproject.service;

import com.ssii.www.myproject.query.BaseQuery;
import org.springframework.data.domain.Page;

import java.io.Serializable;
import java.util.List;

/**
 * 公共的Service
 * @param <T>
 * @param <ID>
 */

public interface BaseService<T,ID extends Serializable> {
  //添加或者修改一条数据
  void save(T t);
  //根据id删除一条数据
  void  delete(ID id);
  //查询一条数据
  T findOne(ID id);
  //查询所有
  List<T> findAll();
  //根据query拿到分页对象
  Page<T> findPageByQuery(BaseQuery query);
  //根据query拿到所有的分页数据
  List<T> findByQuery(BaseQuery baseQuery);
  //根据jpql与对应的参数拿到数据
  List<T> findByJpql(String jpql,Object... params);
}
